const { ccclass, property } = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    @property(cc.Prefab)
    testPrefab: cc.Prefab = null;

    start() {
        //开始在这个脚本监听2个事件
        //用数组的方式同时监听2个事件
        GEvent.onByArray([GEventName.Test1, GEventName.Test.Test2, GEventName.SymbolLike,
        GEventName.StringLike, GEventName.NumberLike, "event", 100], this);


        // for(let i = 0; i < 2; i++){
        //     let node = cc.instantiate(this.testPrefab);
        //     node.parent = this.node;
        // }

        // this.scheduleOnce(()=>{
        //     GEvent.emit(GEventName.Test1, "111", 1);
        //     GEvent.emit(GEventName.Test.Test2, "222", 2);
        // }, 1);

        // this.scheduleOnce(()=>{
        //     GEvent.off(GEventName.Test1, this);
        // }, 2);

        // this.scheduleOnce(()=>{
        //     GEvent.emit(GEventName.Test1, "333", 3);
        //     GEvent.emit(GEventName.Test.Test2, "444", 4);
        // }, 3);

        // this.scheduleOnce(()=>{
        //     GEvent.offAll(this);
        // }, 4);

        // this.scheduleOnce(()=>{
        //     GEvent.emit(GEventName.Test1, "555", 5);
        //     GEvent.emit(GEventName.Test.Test2, "666", 6);
        // }, 5);

        // console.error(cc.Class["Attr"]);

        // console.error(cc.Class["Attr"].getClassAttrs(cc.Label));

        //cc.Class["Attr"].getClassAttrs(cc.Label)["__proto__"]["N$fontFamily$_$default"] = "微软雅黑"




        //cc.Class["Attr"].getClassAttrs(component).__proto__["_N$" + key] = value;

        //3秒后发送事件
        this.scheduleOnce(() => {
            GEvent.emit(GEventName.Test1, "111", 1);// "111", 1 是传递给事件GEventName.Test1的参数
            //GEvent.emit(GEventName.Test.Test2, "222", 2);// "222", 2 是传递给事件GEventName.Test.Test2的参数
        }, 3);

        //测试3种类型的事件
        this.scheduleOnce(()=>{
            GEvent.emit(GEventName.SymbolLike, "SymbolLike", 1);
            GEvent.emit(GEventName.StringLike, "StringLike", 2);
            GEvent.emit(GEventName.NumberLike, "NumberLike", 3);

            GEvent.emit("event", "event", 4);
            GEvent.emit(100, "number", 5);
        }, 1);
    }

    /**事件GEventName.Test1的回调函数 */
    [GEventName.Test1](a, b) {
        console.warn("GEventName.Test1接收到", a, b);
    }

    /**事件GEventName.Test.Test2回调函数 */
    [GEventName.Test.Test2](a, b) {
        console.warn(a, b);
    }

    [GEventName.SymbolLike](...para) {
        console.warn("GEventName.SymbolLike", ...para);
    }

    [GEventName.StringLike](...para) {
        console.warn("GEventName.StringLike", ...para);
    }

    [GEventName.NumberLike](...para) {
        console.warn("GEventName.NumberLike", ...para);
    }

    event(...para) {
        console.warn("event", ...para);
    }

    100(...para) {
        console.warn("100", ...para);
    }


}
